home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 8 / The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO / pcboard / dp-top2b.zip / STAT.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1996-10-06  |  9KB  |  400 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER001
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     Integer  INTEGER005
  24.     Integer  INTEGER006
  25.     Integer  INTEGER007
  26.     Integer  INTEGER008
  27.     Integer  INTEGER009
  28.     Integer  INTEGER010
  29.     Integer  INTEGER011
  30.     Integer  TINTEGER012(700)
  31.     Integer  TINTEGER013(700)
  32.     Integer  TINTEGER014(700)
  33.     Integer  TINTEGER015(700)
  34.     Integer  TINTEGER016(700)
  35.     Integer  TINTEGER017(700)
  36.     Integer  TINTEGER018(700)
  37.     Integer  TINTEGER019(700)
  38.     Integer  INTEGER020
  39.     Integer  INTEGER021
  40.     String   TSTRING001(99)
  41.     String   STRING002
  42.     String   TSTRING003(700)
  43.     String   TSTRING004(700)
  44.     String   TSTRING005(700)
  45.     String   STRING006
  46.  
  47. ;------------------------------------------------------------------------------
  48.  
  49.     INTEGER002 = 1
  50.     INTEGER003 = 2
  51.     STRING006 = U_Name()
  52.     INTEGER020 = 0
  53.     INTEGER006 = 1
  54.     INTEGER008 = 1
  55.     Cls
  56.     FOpen 3, PPEPath() + "Exclude.lst", 0, 0
  57.     :LABEL001
  58.     If (Ferr(3)) Goto LABEL002
  59.     INTEGER021 = INTEGER021 + 1
  60.     FGet 3, TSTRING005(INTEGER021)
  61.     Goto LABEL001
  62.     :LABEL002
  63.     FClose 3
  64.     Print "@X03■ @X0FL@X0Bo@X03ading users@X08... @X0B"
  65.     :LABEL003
  66.     GetAltUser INTEGER006
  67.     If (U_Name() == STRING006) INTEGER020 = INTEGER020 + 1
  68.     If (INTEGER020 == 2) Goto LABEL005
  69.     For INTEGER010 = 1 To INTEGER021
  70.         If (Upper(U_Name()) == Upper(TSTRING005(INTEGER010))) Goto LABEL004
  71.     Next
  72.     TSTRING003(INTEGER006 - 1) = U_Name()
  73.     TSTRING004(INTEGER006 - 1) = U_City
  74.     TINTEGER015(INTEGER006 - 1) = U_Logons()
  75.     TINTEGER013(INTEGER006 - 1) = U_Bul()
  76.     TINTEGER014(INTEGER006 - 1) = U_Bdl()
  77.     TINTEGER016(INTEGER006 - 1) = U_Fdl()
  78.     TINTEGER018(INTEGER006 - 1) = U_Ful()
  79.     TINTEGER017(INTEGER006 - 1) = U_MsgWr()
  80.     TINTEGER019(INTEGER006 - 1) = U_Ful() + U_Logons() + U_MsgWr() - U_Fdl()
  81.     INTEGER008 = INTEGER008 + 1
  82.     If (INTEGER008 == 10) Then
  83.         AnsiPos 20, GetY()
  84.         Print INTEGER006
  85.         INTEGER008 = 0
  86.     Endif
  87.     :LABEL004
  88.     INTEGER006 = INTEGER006 + 1
  89.     Goto LABEL003
  90.     :LABEL005
  91.     INTEGER011 = INTEGER006
  92.     :LABEL006
  93.     TSTRING001(1) = "Top callers             "
  94.     TSTRING001(2) = "Top uploaders (files)   "
  95.     TSTRING001(3) = "Top uploaders (bytes)   "
  96.     TSTRING001(4) = "Top downloaders (files) "
  97.     TSTRING001(5) = "Top downloaders (bytes) "
  98.     TSTRING001(6) = "Top message writers     "
  99.     TSTRING001(7) = "Top users               "
  100.     TSTRING001(8) = "Quit                    "
  101.     INTEGER005 = 8
  102.     DispFile PPEPath() + "stat", 0
  103.     AnsiPos 1, 1
  104.     Print "@X1FDeltaProductions TopUsers statistics 2.0B                                      @X07"
  105.     Gosub LABEL007
  106.     If (INTEGER001 + INTEGER002 == 8) Goto LABEL012
  107.     DispFile PPEPath() + "stat2", 0
  108.     AnsiPos 1, 1
  109.     Print "@X1FDeltaProductions TopUsers statistics 2.0B                                      @X07"
  110.     Print "@X03"
  111.     If (INTEGER001 + INTEGER002 == 1) Then
  112.         Sort TINTEGER015, TINTEGER012
  113.         AnsiPos 7, 2
  114.         Print "@X0AName"
  115.         AnsiPos 27, 2
  116.         Print "Calls"
  117.         AnsiPos 52, 2
  118.         Print "City@X03"
  119.         For INTEGER006 = 0 To 9
  120.             AnsiPos 8, INTEGER006 + 3
  121.             Print "@X03"
  122.             If (TSTRING003(TINTEGER012(700 - INTEGER006)) == STRING006) Print "@X0B"
  123.             Print TSTRING003(TINTEGER012(700 - INTEGER006))
  124.             AnsiPos 28, INTEGER006 + 3
  125.             Print TINTEGER015(TINTEGER012(700 - INTEGER006))
  126.             AnsiPos 53, INTEGER006 + 3
  127.             Print TSTRING004(TINTEGER012(700 - INTEGER006))
  128.         Next
  129.     Endif
  130.     If (INTEGER001 + INTEGER002 == 2) Then
  131.         Sort TINTEGER018, TINTEGER012
  132.         AnsiPos 7, 2
  133.         Print "@X0AName"
  134.         AnsiPos 27, 2
  135.         Print "Files uploaded"
  136.         AnsiPos 52, 2
  137.         Print "City@X03"
  138.         For INTEGER006 = 0 To 9
  139.             AnsiPos 8, INTEGER006 + 3
  140.             Print "@X03"
  141.             If (TSTRING003(TINTEGER012(700 - INTEGER006)) == STRING006) Print "@X0B"
  142.             Print TSTRING003(TINTEGER012(700 - INTEGER006))
  143.             AnsiPos 28, INTEGER006 + 3
  144.             Print TINTEGER018(TINTEGER012(700 - INTEGER006))
  145.             AnsiPos 53, INTEGER006 + 3
  146.             Print TSTRING004(TINTEGER012(700 - INTEGER006))
  147.         Next
  148.     Endif
  149.     If (INTEGER001 + INTEGER002 == 3) Then
  150.         Sort TINTEGER013, TINTEGER012
  151.         AnsiPos 7, 2
  152.         Print "@X0AName"
  153.         AnsiPos 27, 2
  154.         Print "Bytes uploaded"
  155.         AnsiPos 52, 2
  156.         Print "City@X03"
  157.         For INTEGER006 = 0 To 9
  158.             AnsiPos 8, INTEGER006 + 3
  159.             Print "@X03"
  160.             If (TSTRING003(TINTEGER012(700 - INTEGER006)) == STRING006) Print "@X0B"
  161.             Print TSTRING003(TINTEGER012(700 - INTEGER006))
  162.             AnsiPos 28, INTEGER006 + 3
  163.             Print TINTEGER013(TINTEGER012(700 - INTEGER006))
  164.             AnsiPos 53, INTEGER006 + 3
  165.             Print TSTRING004(TINTEGER012(700 - INTEGER006))
  166.         Next
  167.     Endif
  168.     If (INTEGER001 + INTEGER002 == 4) Then
  169.         Sort TINTEGER016, TINTEGER012
  170.         AnsiPos 7, 2
  171.         Print "@X0AName"
  172.         AnsiPos 27, 2
  173.         Print "Files downloaded"
  174.         AnsiPos 52, 2
  175.         Print "City@X03"
  176.         For INTEGER006 = 0 To 9
  177.             AnsiPos 8, INTEGER006 + 3
  178.             Print "@X03"
  179.             If (TSTRING003(TINTEGER012(700 - INTEGER006)) == STRING006) Print "@X0B"
  180.             Print TSTRING003(TINTEGER012(700 - INTEGER006))
  181.             AnsiPos 28, INTEGER006 + 3
  182.             Print TINTEGER016(TINTEGER012(700 - INTEGER006))
  183.             AnsiPos 53, INTEGER006 + 3
  184.             Print TSTRING004(TINTEGER012(700 - INTEGER006))
  185.         Next
  186.     Endif
  187.     If (INTEGER001 + INTEGER002 == 5) Then
  188.         Sort TINTEGER014, TINTEGER012
  189.         AnsiPos 7, 2
  190.         Print "@X0AName"
  191.         AnsiPos 27, 2
  192.         Print "Bytes downloaded"
  193.         AnsiPos 52, 2
  194.         Print "City@X03"
  195.         For INTEGER006 = 0 To 9
  196.             Print "@X03"
  197.             If (TSTRING003(TINTEGER012(700 - INTEGER006)) == STRING006) Print "@X0B"
  198.             AnsiPos 8, INTEGER006 + 3
  199.             Print TSTRING003(TINTEGER012(700 - INTEGER006))
  200.             AnsiPos 28, INTEGER006 + 3
  201.             Print TINTEGER014(TINTEGER012(700 - INTEGER006))
  202.             AnsiPos 53, INTEGER006 + 3
  203.             Print TSTRING004(TINTEGER012(700 - INTEGER006))
  204.         Next
  205.     Endif
  206.     If (INTEGER001 + INTEGER002 == 6) Then
  207.         Sort TINTEGER017, TINTEGER012
  208.         AnsiPos 7, 2
  209.         Print "@X0AName"
  210.         AnsiPos 27, 2
  211.         Print "Messages written"
  212.         AnsiPos 52, 2
  213.         Print "City@X03"
  214.         For INTEGER006 = 0 To 9
  215.             Print "@X03"
  216.             If (TSTRING003(TINTEGER012(700 - INTEGER006)) == STRING006) Print "@X0B"
  217.             AnsiPos 8, INTEGER006 + 3
  218.             Print TSTRING003(TINTEGER012(700 - INTEGER006))
  219.             AnsiPos 28, INTEGER006 + 3
  220.             Print TINTEGER017(TINTEGER012(700 - INTEGER006))
  221.             AnsiPos 53, INTEGER006 + 3
  222.             Print TSTRING004(TINTEGER012(700 - INTEGER006))
  223.         Next
  224.     Endif
  225.     If (INTEGER001 + INTEGER002 == 7) Then
  226.         Sort TINTEGER019, TINTEGER012
  227.         AnsiPos 7, 2
  228.         Print "@X0AName"
  229.         AnsiPos 27, 2
  230.         Print "Total points"
  231.         AnsiPos 52, 2
  232.         Print "City@X03"
  233.         For INTEGER006 = 0 To 9
  234.             AnsiPos 8, INTEGER006 + 3
  235.             Print "@X03"
  236.             If (TSTRING003(TINTEGER012(700 - INTEGER006)) == STRING006) Print "@X0B"
  237.             Print TSTRING003(TINTEGER012(700 - INTEGER006))
  238.             AnsiPos 28, INTEGER006 + 3
  239.             Print TINTEGER019(TINTEGER012(700 - INTEGER006))
  240.             AnsiPos 53, INTEGER006 + 3
  241.             Print TSTRING004(TINTEGER012(700 - INTEGER006))
  242.         Next
  243.     Endif
  244.     AnsiPos 1, 15
  245.     Wait
  246.     Goto LABEL006
  247.     End
  248.     :LABEL007
  249.     If (INTEGER003 == INTEGER002) INTEGER003 = INTEGER002 + 1
  250.     Print "@X03"
  251.     For INTEGER006 = 1 To 8
  252.         AnsiPos 2, INTEGER006 + 2
  253.         Print " " + Left(TSTRING001(INTEGER006 + INTEGER001), 23) + " "
  254.     Next
  255.     :LABEL008
  256.     If (INTEGER003 == INTEGER002) Goto LABEL009
  257.     AnsiPos 2, INTEGER003 + 2
  258.     Print " " + Left(TSTRING001(INTEGER001 + INTEGER003), 23) + " "
  259.     AnsiPos 2, INTEGER002 + 2
  260.     Print "@X1F " + Left(TSTRING001(INTEGER001 + INTEGER002), 23) + " @X03"
  261.     :LABEL009
  262.     STRING002 = Inkey()
  263.     INTEGER007 = INTEGER007 + 1
  264.     If (INTEGER007 == 220) Then
  265.         INTEGER007 = 0
  266.         INTEGER009 = INTEGER009 + 1
  267.         If (INTEGER009 > 34) INTEGER009 = 1
  268.         INTEGER008 = INTEGER009
  269.         If (INTEGER008 > 16) INTEGER008 = 35 - INTEGER009
  270.         AnsiPos 29, 7
  271.         If (INTEGER008 == 1) Print "@X0FD@X0Be@X03ltaProductions@X03"
  272.         If (INTEGER008 == 2) Print "@X0BD@X0Fe@X0Bl@X03taProductions@X03"
  273.         If (INTEGER008 == 3) Print "@X03D@X0Be@X0Fl@X0Bt@X03aProductions@X03"
  274.         If (INTEGER008 == 4) Print "@X03De@X0Bl@X0Ft@X0Ba@X03Productions@X03"
  275.         If (INTEGER008 == 5) Print "@X03Del@X0Bt@X0Fa@X0BP@X03roductions@X03"
  276.         If (INTEGER008 == 6) Print "@X03Delt@X0Ba@X0FP@X0Br@X03oductions@X03"
  277.         If (INTEGER008 == 7) Print "@X03Delta@X0BP@X0Fr@X0Bo@X03ductions@X03"
  278.         If (INTEGER008 == 8) Print "@X03DeltaP@X0Br@X0Fo@X0Bd@X03uctions@X03"
  279.         If (INTEGER008 == 9) Print "@X03DeltaPr@X0Bo@X0Fd@X0Bu@X03ctions@X03"
  280.         If (INTEGER008 == 10) Print "@X03DeltaPr@X0Bo@X0Fd@X0Bu@X03ctions@X03"
  281.         If (INTEGER008 == 11) Print "@X03DeltaPro@X0Bd@X0Fu@X0Bc@X03tions@X03"
  282.         If (INTEGER008 == 12) Print "@X03DeltaProd@X0Bu@X0Fc@X0Bt@X03ions@X03"
  283.         If (INTEGER008 == 13) Print "@X03DeltaProdu@X0Bc@X0Ft@X0Bi@X03ons@X03"
  284.         If (INTEGER008 == 14) Print "@X03DeltaProduc@X0Bt@X0Fi@X0Bo@X03ns@X03"
  285.         If (INTEGER008 == 15) Print "@X03DeltaProduct@X0Bi@X0Fo@X0Bn@X03s@X03"
  286.         If (INTEGER008 == 16) Print "@X03DeltaProducti@X0Bo@X0Fn@X0Bs@X03"
  287.         If (INTEGER008 == 17) Print "@X03DeltaProductio@X0Bn@X0Fs@X03"
  288.     Endif
  289.     INTEGER004 = 0
  290.     If (STRING002 == "") Goto LABEL009
  291.     If (STRING002 == "UP") Then
  292.         If ((INTEGER002 == 1) && (INTEGER001 == 0)) Goto LABEL010
  293.         INTEGER003 = INTEGER002
  294.         INTEGER002 = INTEGER002 - 1
  295.     Endif
  296.     :LABEL010
  297.     If (STRING002 == Chr(13)) Return
  298.     If (STRING002 == "DOWN") Then
  299.         If ((INTEGER002 >= 19) && (INTEGER001 >= INTEGER005 - 19)) Goto LABEL011
  300.         INTEGER003 = INTEGER002
  301.         INTEGER002 = INTEGER002 + 1
  302.     Endif
  303.     :LABEL011
  304.     If (INTEGER002 < 1) Then
  305.         INTEGER002 = 1
  306.         INTEGER004 = 1
  307.     Endif
  308.     If (INTEGER002 > 8) Then
  309.         INTEGER003 = 7
  310.         INTEGER002 = 8
  311.         INTEGER004 = 1
  312.     Endif
  313.     If (INTEGER001 < 0) Then
  314.         INTEGER001 = 0
  315.         INTEGER002 = 1
  316.         INTEGER003 = 2
  317.     Endif
  318.     If (INTEGER004 == 1) Goto LABEL007
  319.     Goto LABEL008
  320.     Return
  321.     :LABEL012
  322.     AnsiPos 15, 1
  323.     Cls
  324.     End
  325.  
  326. ;------------------------------------------------------------------------------
  327. ;
  328. ; Usage report (before postprocessing)
  329. ;
  330. ; ■ Statements used :
  331. ;
  332. ;    2       End
  333. ;    2       Cls
  334. ;    1       Wait
  335. ;    45      Goto 
  336. ;    69      Let 
  337. ;    82      Print 
  338. ;    61      If 
  339. ;    2       DispFile 
  340. ;    1       FOpen 
  341. ;    1       FClose 
  342. ;    1       FGet 
  343. ;    1       Gosub 
  344. ;    2       Return
  345. ;    51      AnsiPos 
  346. ;    1       GetAltUser 
  347. ;    7       Sort 
  348. ;
  349. ;
  350. ; ■ Functions used :
  351. ;
  352. ;    63      +
  353. ;    41      -
  354. ;    46      ==
  355. ;    11      <
  356. ;    9       <=
  357. ;    3       >
  358. ;    20      >=
  359. ;    27      !
  360. ;    20      &&
  361. ;    9       ||
  362. ;    2       Upper()
  363. ;    3       Left()
  364. ;    1       Ferr()
  365. ;    1       Chr()
  366. ;    4       U_Name()
  367. ;    2       U_Logons()
  368. ;    2       U_Ful()
  369. ;    2       U_Fdl()
  370. ;    1       U_Bdl()
  371. ;    1       U_Bul()
  372. ;    1       Inkey()
  373. ;    3       PPEPath()
  374. ;    2       U_MsgWr()
  375. ;    1       GetY()
  376. ;
  377. ;------------------------------------------------------------------------------
  378. ;
  379. ; Analysis flags : R
  380. ;
  381. ; R - Read user ■ 5
  382. ;     User records are read, this may signify that someone wants to get
  383. ;     various informations about a user (for example his password), but
  384. ;     this may also be normal for a program accessing user records (for
  385. ;     example a User Editor)
  386. ;     ■ Search for : GETALTUSER
  387. ;
  388. ;------------------------------------------------------------------------------
  389. ;
  390. ; Postprocessing report
  391. ;
  392. ;    9       For/Next
  393. ;    0       While/EndWhile
  394. ;    14      If/Then or If/Then/Else
  395. ;    0       Select Case
  396. ;
  397. ;------------------------------------------------------------------------------
  398. ;                 AEGiS Corp - Break the routines, code against the machines!
  399. ;------------------------------------------------------------------------------
  400.